const express = require('express')
const expressWs = require('express-ws')
const router = express.Router()

expressWs(router) //将路径注入

// 数据存储
let msgArr_from_a = []
let msgArr_from_b = []

/** a发接受数据
 * a 访问消息的路径为： ws://localhost:端口号/ws/a
 * 每一个路由中必须有一个有效的send的方法
 *  */ 
router.ws('/a', ws => {
  // 接收客户发来的消息
  ws.on("message", (msg) => {
    msgArr_from_a.push(msg)
    ws.send(msg)
  })
  // ws.send('李白链接成功') // 发送数据， send中有一个return
})

router.ws('/a2', ws => {
  let timer = null //监听计时器，关闭连接后清掉计时器
  ws.on('close', () => {
    if (timer) {
      clearInterval(timer)
    }
  })
  timer = setInterval(()=>{
    if (msgArr_from_b.length) {
      let m = msgArr_from_b[0]
      msgArr_from_b.shift()
      ws.send(m)
    }
  }, 1000)
})


/** b发接受数据
 * b 访问消息的路径为： ws://localhost:端口号/ws/a
 * 每一个路由中必须有一个有效的send的方法
 *  */ 
 router.ws('/b', ws => {
  // 接收客户发来的消息
  ws.on("message", (msg) => {
    msgArr_from_b.push(msg)
    ws.send(msg)
  })
  // ws.send('李白链接成功') // 发送数据， send中有一个return
})

router.ws('/b2', ws => {
  let timer = null //监听计时器，关闭连接后清掉计时器
  ws.on('close', () => {
    if (timer) {
      clearInterval(timer)
    }
  })
  timer = setInterval(()=>{
    if (msgArr_from_a.length) {
      let m = msgArr_from_a[0]
      msgArr_from_a.shift()
      ws.send(m)
    }
  }, 1000)
})


module.exports = router